<%@ page contentType="text/html;charset=UTF-8" %>
<%@include file="../../common/sessionValidate.jsp" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!DOCTYPE HTML>
<html lang="UTF-8">
<head>
    <title>订单扫描打印</title>
    <%@ include file="../../common/meta.jsp" %>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta http-equiv="X-UA-Compatible" content="IE=9">
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
    <link rel="stylesheet" href="<%=basePath%>css/my-bootstrap.css" media="screen" id="tuserskin">
    <link rel="stylesheet" href="<%=basePath%>js/toastr/toastr.css">
    <link rel="stylesheet" href="<%=basePath%>css/bootstrapValidator.min.css">
    <link rel="stylesheet" href="<%=basePath%>css/font-awesome.min.css">
    <script type="text/javascript" src="<%= basePath %>js/jquery.cookie.js"></script>
</head>
<style>
    <!--
    直接去掉页眉页脚-- >
    .header, .footer {
        display: none;
    }

    hr {
        margin-top: 1px;
        border-bottom: 1px solid #1BBC9B;
    }

    @page {
        size: auto;
        margin: 0mm;
    }
</style>
<body>
<form class="form-horizontal form-bordered form-row-strippe" name="ffAdd" id="ffAdd" mentod="post" role="form"
      onsubmit="return edit()" enctype="multipart/form-data">
    <div class="" style="margin-right:2px;padding-right:1px; display: block;" id="showDiv1">

        <!-------------------------- 面板  start
            //item
			// 1: 客户名称 buyer_company_name 	2: PO/订单号 saller_tel	3:CPN/物料编码 buyer_tel
			// 4:MPN/规格型号 saller_company_address	  5:QTY/数量 ext1  6: BRAND/品牌 ext2
			// 7:供应商 saller_company_name	 8:盘数 good_num 	 9:辅助出货数量; ext3
			// 10、把枪扫入规格型号 buyer_company_address  11、把枪扫描数量（盘数） price
        --------------------------------->
        <div class="panel panel-primary">
            <div class="panel-heading clearfix" id=""> 订单管理-->订单扫描打印<font color="red"><br>注意：<br>1、进入本页面时，在扫描枪扫描前，请把输入法切换至英文输入法，否则扫描后不会自动回车，需要手工提交扫描才会自动打印；<br>2、请把CapsLock设置为小写状态,否则扫描出来的是小写字母；</font>
            </div>

            <div class="panel-body" id="mb1">
                <div class="row">
                    <!--<h5>&nbsp;&nbsp;基本信息</h5>
                    <hr>-->
                    <div class="col-xs-6"><!--start 换列-->
                        <div class="col-xs-12">
                            <div class="form-group">
                                <label class="control-label col-xs-3"> 客户名称</label>
                                <div class="col-xs-9">
                                    <input id="buyer_company_name" name="buyer_company_name" type="text"
                                           class="form-control" placeholder="扫描后自动获取值" readonly/>
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12">
                            <div class="form-group">
                                <label class="control-label col-xs-3">PO/订单号</label>
                                <div class="col-xs-9">
                                    <input id="saller_tel" name="saller_tel" type="text" class="form-control"
                                           placeholder="扫描后自动获取值" readonly/>
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12">
                            <div class="form-group">
                                <label class="control-label col-xs-3">CPN/物料编码 </label>
                                <div class="col-xs-9">
                                    <input id="buyer_tel" name="buyer_tel" type="text" class="form-control"
                                           placeholder="扫描后自动获取值" readonly/>
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12">
                            <div class="form-group">
                                <label class="control-label col-xs-3">QTY/数量 </label>
                                <div class="col-xs-9">
                                    <input id="ext1" name="ext1" type="text" class="form-control" placeholder="扫描后自动获取值"
                                           readonly/>
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12">
                            <div class="form-group">
                                <label class="control-label col-xs-3"> 盘数 </label>
                                <div class="col-xs-9">
                                    <input id="good_num" name="good_num" type="text" class="form-control"
                                           placeholder="扫描后自动获取值" readonly/>
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12">
                            <div class="form-group">
                                <label class="control-label col-xs-3">MPN/规格型号 </label>
                                <div class="col-xs-9">
                                    <input id="saller_company_address" name="saller_company_address" type="text"
                                           class="form-control" placeholder="扫描后自动获取值" readonly/>
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12">
                            <div class="form-group">
                                <label class="control-label col-xs-3">辅助出货数量 </label>
                                <div class="col-xs-9">
                                    <input id="ext3" name="ext3" type="text"
                                           class="form-control" placeholder="扫描后自动获取值" readonly/>
                                </div>
                            </div>
                        </div>

                        <!--如果输入元素是偶数个元素，在n=size/2?int时输出2列格式；如果元素是奇数个，需要在n=size/2?int时输出2列格式；需要换列，每行最多显示2列-->
                    </div><!--end 换列--><!--start 换列-->
                    <div class="col-xs-6">
                        <div class="col-xs-12">
                            <div class="form-group">
                                <label class="control-label col-xs-3">供应商 </label>
                                <div class="col-xs-9">
                                    <input id="saller_company_name" name="saller_company_name" type="text"
                                           class="form-control" placeholder="扫描后自动获取值" readonly/>
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12">
                            <div class="form-group">
                                <label class="control-label col-xs-3">BRAND/品牌 </label>
                                <div class="col-xs-9">
                                    <input id="ext2" name="ext2" type="text" class="form-control" placeholder="扫描后自动获取值"
                                           readonly/>
                                </div>
                            </div>
                        </div>

                        <div class="col-xs-12">
                            <div class="form-group">
                                <label class="control-label col-xs-3"> 辅助出货数量</label>
                                <div class="col-xs-9">
                                    <input id="ext3" name="ext3" type="text" class="form-control" placeholder="扫描后自动获取值"
                                           readonly/>
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12">
                            <div class="form-group">
                                <label class="control-label col-xs-3"> 状态</label>
                                <div class="col-xs-9">
                                    <select name="status" id="status" class="form-control" readonly>
                                        <option value="0">未扫描</option>
                                        <option value="1">部分扫描</option>
                                        <option value="2">已扫描</option>
                                    </select>
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12">
                            <div class="form-group">
                                <label class="control-label col-xs-3">已扫描数量(盘数) </label>
                                <div class="col-xs-9">
                                    <input id="price" name="price" type="text" class="form-control"
                                           placeholder="把枪扫描后数量会自动加1" readonly/>
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12">
                            <div class="form-group">
                                <label class="control-label col-xs-3"> 把枪扫入规格型号<font color="red">*</font></label>
                                <div class="col-xs-9">
                                    <input type="text" name="buyer_company_address" id="buyer_company_address"
                                           onkeypress="" class="form-control" placeholder="把枪扫入规格型号，自动回车换行会自动打印"/>
                                    <input type="hidden" name="order_goods_id" id="order_goods_id" value="">
                                    <input type="hidden" name="creattime" id="creattime" value="">
                                    <input type="hidden" name="creater" id="creater" value="">

                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12">
                            <div class="form-group">
                                <label class="control-label col-xs-3"> 打印模板类型</label>
                                <div class="col-xs-9">
                                    <select name="buyer" id="buyer" class="form-control" readonly>
                                        <option value="1">模板1</option>
                                        <option value="2">模板2</option>
                                        <option value="3">模板3</option>
                                        <option value="4">模板4</option>
                                    </select>
                                </div>
                            </div>
                        </div>

                    </div><!--end 换列-->
                </div><!--end row-->
            </div><!--end body-->


            <div class="modal-footer bg-info " id='buttonDiv'>
                <button type="button" class="btn btn-sm btn-primary" name="qc" id="qc" onclick="qcsmz()"> 清除扫描值</button>
                <button type="button" class="btn btn-sm btn-primary" name="editSaveButton"  onclick="return edit()" id="editSaveButton">手工提交扫描
                </button>
                <!--
                <button type="button" class="btn btn-sm btn-danger" data-dismiss="modal" onclick="sgPrint()" id="sgdy">
                    手工打印
                </button>-->
                <button type="button" class="btn btn-sm btn-danger" data-dismiss="modal" onclick="return tcsm()"
                        id="curdfh">退出扫描
                </button>
                <input type="hidden" name="opType" id="opType" value="edit">
            </div>
        </div>
        <!--------------------------面板 end----------------------------------
        // 1: 客户名称 buyer_company_name 	2: PO/订单号 saller_tel	3:CPN/物料编码 buyer_tel
        // 4:MPN/规格型号 saller_company_address	  5:QTY/数量 ext1  6: BRAND/品牌 ext2
        // 7:供应商 saller_company_name	 8:盘数 good_num 	 9:辅助出货数量; ext3
        // 10、把枪扫入规格型号 buyer_company_address  11、把枪扫描数量（盘数） price
        //设置除了客户之外其他信息都为空；待扫描后自动查询  该客户为扫描 订单对应扫入 规格型号对应 订单信息；
        -->
    </div>

    <div id="printDiv1" style="display: block">
        <!-- -->
        <iframe id="printFrame" src=""  frameborder="0" width="100%"></iframe>
    </div>

</form>
</body>
</html>

<script src="<%=basePath%>js/bootstrap.min.js"></script>
<!--<script src="<%=basePath%>js/jquery-1.10.2/jquery.min.js"></script>
<script type="text/javascript" src="js/bootstrapValidator.js"></script>-->
<script src="<%=basePath%>js/bootstrap-paginator.min.js"></script>
<script src="<%=basePath%>/js/respond.js"></script>
<script src="<%=basePath%>/js/html5.js"></script>
<script src="<%=basePath%>js/toastr/toastr.js"></script>
<script src="<%=basePath%>js/bootbox.js"></script>
<script src="<%=basePath%>js/jquery.validate.js"></script>
<!-- <script src="<%=basePath%>js/additional-methods.min.js"></script> -->
<script src="<%=basePath%>js/my-jquery-curd.js"></script>
<script src="<%= basePath %>js/tableSortTool.js"></script>
<script src="<%= basePath %>js/calendar.js"></script>
<script src="<%= basePath %>js/jquery.jqprint.js"></script>
<script type="text/javascript">

    //注册键盘事件条码扫描器其实就是一种输入设备，跟键盘一样。在控制台打印扫描过程，可以看出，扫描过程就像是在键盘上敲击相应的键，keycode和键盘是一一对应的，
    // 只是输入速度(间隔时间)比物理键盘输入要快得多。我们可以通过监听输入间隔时间，来判断到底是键盘输入还是扫描输入。
    // 扫码枪输入的时间间隔一般在10毫秒以内，物理键盘输入要远大于这个数值，通常为80毫秒以上。因此，当输入间隔时间小于30毫秒时，判断为扫码枪输入，
    // 其余情况判断为键盘输入。
    $("#buyer_company_address").focus();
    $(document).keydown(function (event) {
        //nextTime = new Date().getTime();//获取当前键入的时间
        //判断是否输入了回车按钮，并确认是扫描枪键入的值
        //if (event.keyCode === 13 && char !== "" && nextTime - lastTime <= 30) {
        if (event.keyCode === 13) {
            //alert("监听到扫描枪回车事件或者键盘回车事件event.keyCode=" + event.keyCode );
            //提交 客户名成 + 扫描到的规格型号，去后台查询是否存在该订单数据；
            //alert("捕捉到扫描枪或者键盘事件！即将执行后续程序！");
            //在英文输入法下才会自动 回车，否则即使回车模式，也不会回车，不会调用edit函数；
            edit();
        }
    });

    //退出扫描判断
    function tcsm(){
        var price = parseInt($("#price").val());  //扫描盘数；
        var good_num = parseInt($("#good_num").val());  //订单盘数； typeof is string
        if(price < good_num){
            var msg = "请确认\n\n该订单还未扫描完成，订单盘数为："+good_num+",已经扫描盘数为："+price+"，请你确认是否退出扫描？";
            if (confirm(msg)==true){
                window.location.href="<%=basePath%>t_order_goods/toT_order_goodsScanList?1=1&process_code=smdy";
                return true;
            }else{
                return false;
            }
        }else{ //已经扫描完成；
            window.location.href="<%=basePath%>t_order_goods/toT_order_goodsScanList?1=1&process_code=smdy";
            return true;
        }
    }
    //手工打印函数，自动调用打印打出贴纸；
    function sgPrint() {
        //window.print(); //会弹出打印框，如下方法可以不弹出打印框；
        $("#printDiv1").jqprint();
    }

    //手工清除扫描错误的码；可以重新扫描；
    function qcsmz() {
        //alert("手工清除扫描值！");
        //如果扫描错误，则手工清除扫描值
        $("#buyer_company_address").val("");
        $("#buyer_company_address").focus();
    }

    //保存扫描数据，更新扫描盘数加一，扫描状态更新；
    function saveVO(url) {
        var postData = $("#ffAdd").serializeArray();
        //alert("更新本次扫描数据到数据库 updateVO url=" + url);
        $.post(url, postData, function (data) {
            if (data.result == "success") {
                showSuccessTips("恭喜更新扫描数据成功", "提示");
            } else {
                showErrorTips("修改更新扫描数据失败!", "错误信息：");
            }
        }).error(function () {
            showErrorTips("修改更新扫描数据失败!", "错误信息：");
        });
    }

    //更新修改数据到后台
    function edit() {
        //alert("进入edit（）！");
        //扫描后总体步骤：0：检查数据-1：查询订单是否存在-2：对页面赋值-3：更新扫描结果并打印-4：扫描完成自动跳转至列表页-5：退出时未扫描完成提醒-6：已扫描完成重复扫提醒（功能上隔离，不会发生）；
        // 0、检查数据是否完整，必须有客户名称 + 规格型号；
        var buyer_company_name = $("#buyer_company_name").val(); //客户名称
        if (buyer_company_name == null || buyer_company_name == "") { // 如果规格型号为空，提示请扫描后再按回车或者请扫描把枪能够识别码，否则系统无法打印；
            alert("请确认该订单信息是否完整，目前没有查询到该订单对应客户信息，无法进行扫描打印，请与订单管理人员进行联系，在订单查询中进行删除或者重新上传订单！");
            return false;
        }
        var saller_company_address = $("#buyer_company_address").val(); //扫描进来的:规格型号
        if (saller_company_address == null || saller_company_address == "") { // 如果规格型号为空，提示请扫描后再按回车或者请扫描把枪能够识别码，否则系统无法打印；
            alert("请确认把枪扫描已经定位到‘把枪扫入规格型号’输入框，并且该输入框中有显示扫描出的字符，否则系统无法打印；");
            return false;
        }

        //1、先去根据 客户名称  + 规格型号（扫描进来的数据值） 查询对应订单 数据；显示到页面；
        var status = "0";
        //根据客户名称buyer_company_name +  规格型号 saller_company_address  + status=0的 订单数据；
        //ie下 必须使用encodeURIComponent(中文)；否则浏览器执行到这里不再执行；
        var url ="<%=basePath%>t_order_goods/getAllT_order_goodsONE?buyer_company_name =" + encodeURIComponent(buyer_company_name) + "&saller_company_address=" + encodeURIComponent(saller_company_address) + "&status=0&time=" + Math.random();
        //非ie浏览器使用如下即可，不需要  encodeURIComponent()转换中文参数；
        //var url ="<%=basePath%>t_order_goods/getAllT_order_goodsONE?buyer_company_name =" + buyer_company_name + "&saller_company_address=" + saller_company_address + "&status=0&time=" + Math.random();
        //alert("获取扫描规格型号和客户对应订单数据，getAllT_order_goodsONE url="+url);
        $.ajaxSetup({ cache: false });
        /*
        $.ajax({
            url: url,
            type: "GET",
            data: "",
            datatype: "JSON",
            success: function(result){
                var jsonresult = eval("(" + result + ")");
                alert("ajax jsonresult="+jsonresult);
            }
        });
        //*/

        $.getJSON(url, function (data) {//获取数据，并且自动填充form，自动代码待修改；
            //alert("进入 getJSON方法");
            //alert("getone=" + $.parseJSON(data));
            //alert("getAllT_order_goodsONE data 1 =" + data);
            if (data == null) { //如果查询到该客户未扫描订单数据，说明有可以待扫描订单；否则提示没有查询到订单，提示:请扫描正确的规格型号或者输入正确规格型号，然后回车，把枪扫描不需要回车；，
                alert("请扫描客户：'" + buyer_company_name + "'未出库订单中对应的规格型号盘片，您当前扫描的盘片在该客户的未出库订单中未查到数据！");
                return false;
            } else {
                //alert("getAllT_order_goodsONE data 2=" + data);
                setValue(data);
                //一定要在这里进行比较，前面good_num还没值，会取不到值；
                var price = parseInt($("#price").val());  //扫描盘数；
                var good_num = parseInt($("#good_num").val());  //订单盘数； typeof is string
                //alert("price="+price+";good_num="+good_num);
                var newprice = 0;
                //设置除了客户之外其他信息都为空；待扫描后自动查询  该客户为扫描 订单对应扫入 规格型号对应 订单信息；

                //2、扫描后 把已扫描 盘数 +1；并且调用更新 打印数量至数据库；price+1；状态为：未打印，已打印，status=1或者0；
                //alert("把枪扫描数量（盘数）=" + price);
                newprice = price + 1; // typeof is number；
                //$("#price").val(price);

                //3、自动调用打印打出贴纸；
                //设置打印页面内容，printFrame div；重新加载ifream，reload；
                //$(window.frames["framePrint"].document).find("#khm").text(data.buyer_company_name);
                //document.getElementById('framePrint').contentWindow.document.getElementById("khm").innerText = data.buyer_company_name;

                //4、如果该订单扫描数量与盘数相等，则提醒关闭页面（或者自动关闭），等操作人员手工关闭；
                //alert("订单盘数："+typeof  good_num+"；已扫描数量："+typeof  newprice);
                //alert("扫描数量:"+newprice+"是否小于订单数量:"+good_num+"="+ (newprice < good_num )+"；类型："+ (typeof newprice +"-"+ typeof good_num) );
                $("#price").val(newprice);
                //设置获取已经加载的准确的规格型号 对应的主键 order_goods_id，
                var neworder_goods_id = $("#order_goods_id").val();
                //alert("neworder_goods_id="+neworder_goods_id);
                //var frameSrc = "<%=basePath%>t_order_goods/toT_order_goodsPrint?id=<%=request.getParameter("id")%>&buyer=<%=request.getParameter("buyer")%>&oplx=<%=request.getParameter("oplx")%>";
                var frameSrc = "<%=basePath%>t_order_goods/toT_order_goodsPrint?id="+neworder_goods_id+"&buyer=<%=request.getParameter("buyer")%>&oplx=<%=request.getParameter("oplx")%>";
                var saveurl = "<%=basePath%>t_order_goods/updateT_order_goods?time=" + Math.random();
                if (newprice < good_num) { //已扫描盘数 小于 盘数；
                    //alert("扫描盘数="+newprice);
                    //alert("已扫描盘数小于订单中盘数，本次扫描后把枪扫描数量（盘数+1）=" + newprice);
                    //$("#buyer_company_address").val(saller_company_address); //重新把把枪扫描规格型号值 显示出来；上面setvalue冲掉了；

                    //$("#price").val(newprice);
                    //$("#status").val("1");  丢弃，因为查询时没办法传输0、1都查询；需要改造sql；
                    //todo 更新数据库； price = newprice 和 status = 1;
                    saveVO(saveurl);

                    //重新设置打印 待打印页面值，然后调用打印程序；
                    //alert("frameSrc="+frameSrc);
                    $("#printFrame").attr("src", frameSrc);
                    $("#printFrame").load();

                } else if (newprice == good_num) { //已扫描盘数 等于 盘数；扫描完毕，更新提示跳转；
                    //alert("订单盘数：" + good_num + "；已扫描数量" + newprice + "相等！");
                    //设置页面的按钮只有关闭或者返回；并且提示已经扫描完成；
                    //showSuccessTips("恭喜您客户：'"+buyer_company_name+"'的订单盘数已经扫描完毕，共计扫描"+price+"个!请及时打印贴上标签", "提示");
                    //$('input').attr("readonly","readonly")//将input元素设置为readonly
                    //$('input').removeAttr("readonly");//去除input元素的readonly属性
                    $("#buyer_company_address").attr("readonly", "readonly"); //设置为不可再扫描；
                    //$("#curdfh").focus(); //设置为不可再扫描；

                    $("#status").val("2");
                    //todo 更新数据库； price = newprice 和 status = 2;
                    saveVO(saveurl);

                    //重新设置打印 待打印页面值，然后调用打印程序；
                    $("#printFrame").attr("src", frameSrc);
                    $("#printFrame").load();

                    //打印完成后，提示扫描完成，跳转至列表页；
                    alert("恭喜您'" + buyer_company_name + "'订单盘数已经扫描完毕，共计扫描" + newprice + "个!请及时打印并贴上标签!");
                    //window.location.href = "<%=basePath%>t_order_goods/toT_order_goodsScanList?1=1&process_code=smdy";
                }
                //5、如果未扫完数，手工关闭页面时提醒，未扫描完成；可以放到 返回或者取消按钮点击时增加提醒；放在外面单独的函数判断；
                //6、已扫描打印完成，但是未关闭页面继续扫描盘，系统提醒该订单已经完成，不能再进行扫描；放在第一步；加这个判断；

                return false; //无论如何都 return false；不然页面form会提交跳转；
            }
        });
    }

    //初始化页面及校验
    $().ready(function () {
        //1、初始化数据显示
        //var optype ='<%=request.getParameter("oplx")%>';
        var id = '<%=request.getParameter("id")%>';
        //alert("optype="+optype+";id="+id);
        //$("#printDiv1").hide();//$("#showDiv1")style.display='none';//$("#showDiv1").show();
        //页面加载后 初始化焦点到该输入框，等待把枪扫描后自动填充该输入框值，并且把枪设置为自动换行， 捕捉自动换行 自动提交打印标签页；
        $("#buyer_company_address").focus();
        var url = "<%=basePath%>t_order_goods/getT_order_goods?id=" + id + "&time=" + Math.random();
        $.getJSON(url, function (data) {//获取数据，并且自动填充form，自动代码待修改； @todo;
            setValue(data);
            //item
            // 1: 客户名称 buyer_company_name 	2: PO/订单号 saller_tel	3:CPN/物料编码 buyer_tel
            // 4:MPN/规格型号 saller_company_address	  5:QTY/数量 ext1  6: BRAND/品牌 ext2
            // 7:供应商 saller_company_name	 8:盘数 good_num 	 9:辅助出货数量; ext3
            // 10、把枪扫入规格型号 buyer_company_address  11、把枪扫描数量（盘数） price
            //设置除了客户之外其他信息都为空；待扫描后自动查询  该客户为扫描 订单对应扫入 规格型号对应 订单信息；
            $("#saller_tel").val("");
            $("#buyer_tel").val("");
            $("#saller_company_address").val("");
            $("#ext1").val("");
            $("#ext2").val("");

            $("#saller_company_name").val("");
            $("#good_num").val("");
            $("#price").val(0);
            $("#ext3").val("");
        });

    }) //end funciton read;


</script>
